package com.trade.common.scheduler;

/**
 * Class Description:任务处理接口
 *
 * @Version v1.0 2017/12/7 21:37
 * @JDK version 1.8.0_51
 * @Author zfb
 */
public interface WorkHandler<T> {

    /**
     * 开始任务
     * @param clientWorkParams 启动任务的参数类
     * @param clientWorkCallback 任务执行回调
     * @return 返回任务id
     * @throws Exception
     */
    String startTask(T clientWorkParams, ClientWorkCallback clientWorkCallback)throws Exception;

    /**
     * 暂停任务
     * @param taskId 任务id
     * @return 返回执行结果
     * @throws Exception
     */
    int pauseTask(String taskId)throws Exception;

    /**
     * 复位（继续开始）任务
     * @param taskId 任务id
     * @return 返回执行结果
     * @throws Exception
     */
    int resumeTask(String taskId)throws Exception;

    /**
     * 终止任务
     * @param taskId 任务id
     * @return 返回执行结果
     * @throws Exception
     */
    int stopTask(String taskId)throws Exception;

}